↳ Prolog
↳ PrologToPiTRSProof
p_in(cons(0, Xs)) → U3(Xs, p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out(cons(X, nil))
U1(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U2(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U2(X, Y, Xs, p_out(cons(s(s(s(s(Y)))), Xs))) → p_out(cons(s(s(X)), cons(Y, Xs)))
U3(Xs, p_out(Xs)) → p_out(cons(0, Xs))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
p_in(cons(0, Xs)) → U3(Xs, p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out(cons(X, nil))
U1(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U2(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U2(X, Y, Xs, p_out(cons(s(s(s(s(Y)))), Xs))) → p_out(cons(s(s(X)), cons(Y, Xs)))
U3(Xs, p_out(Xs)) → p_out(cons(0, Xs))
P_IN(cons(0, Xs)) → U31(Xs, p_in(Xs))
P_IN(cons(0, Xs)) → P_IN(Xs)
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
U11(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U21(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U11(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → P_IN(cons(s(s(s(s(Y)))), Xs))
p_in(cons(0, Xs)) → U3(Xs, p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out(cons(X, nil))
U1(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U2(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U2(X, Y, Xs, p_out(cons(s(s(s(s(Y)))), Xs))) → p_out(cons(s(s(X)), cons(Y, Xs)))
U3(Xs, p_out(Xs)) → p_out(cons(0, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
P_IN(cons(0, Xs)) → U31(Xs, p_in(Xs))
P_IN(cons(0, Xs)) → P_IN(Xs)
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
U11(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U21(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U11(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → P_IN(cons(s(s(s(s(Y)))), Xs))
p_in(cons(0, Xs)) → U3(Xs, p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out(cons(X, nil))
U1(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U2(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U2(X, Y, Xs, p_out(cons(s(s(s(s(Y)))), Xs))) → p_out(cons(s(s(X)), cons(Y, Xs)))
U3(Xs, p_out(Xs)) → p_out(cons(0, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
P_IN(cons(0, Xs)) → P_IN(Xs)
U11(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → P_IN(cons(s(s(s(s(Y)))), Xs))
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
p_in(cons(0, Xs)) → U3(Xs, p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(X, Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out(cons(X, nil))
U1(X, Y, Xs, p_out(cons(X, cons(Y, Xs)))) → U2(X, Y, Xs, p_in(cons(s(s(s(s(Y)))), Xs)))
U2(X, Y, Xs, p_out(cons(s(s(s(s(Y)))), Xs))) → p_out(cons(s(s(X)), cons(Y, Xs)))
U3(Xs, p_out(Xs)) → p_out(cons(0, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
P_IN(cons(0, Xs)) → P_IN(Xs)
U11(Y, Xs, p_out) → P_IN(cons(s(s(s(s(Y)))), Xs))
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
p_in(cons(0, Xs)) → U3(p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out
U1(Y, Xs, p_out) → U2(p_in(cons(s(s(s(s(Y)))), Xs)))
U2(p_out) → p_out
U3(p_out) → p_out
p_in(x0)
U1(x0, x1, x2)
U2(x0)
U3(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
P_IN(cons(0, Xs)) → P_IN(Xs)
U11(Y, Xs, p_out) → P_IN(cons(s(s(s(s(Y)))), Xs))
Used ordering: Polynomial interpretation [25]:
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
POL(0) = 0
POL(P_IN(x1)) = x1
POL(U1(x1, x2, x3)) = x3
POL(U11(x1, x2, x3)) = 1 + x2 + x3
POL(U2(x1)) = 1
POL(U3(x1)) = 1
POL(cons(x1, x2)) = 1 + x2
POL(nil) = 0
POL(p_in(x1)) = 1
POL(p_out) = 1
POL(s(x1)) = 0
U3(p_out) → p_out
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(Y, Xs, p_in(cons(X, cons(Y, Xs))))
U1(Y, Xs, p_out) → U2(p_in(cons(s(s(s(s(Y)))), Xs)))
U2(p_out) → p_out
p_in(cons(0, Xs)) → U3(p_in(Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
P_IN(cons(s(s(X)), cons(Y, Xs))) → U11(Y, Xs, p_in(cons(X, cons(Y, Xs))))
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
p_in(cons(0, Xs)) → U3(p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out
U1(Y, Xs, p_out) → U2(p_in(cons(s(s(s(s(Y)))), Xs)))
U2(p_out) → p_out
U3(p_out) → p_out
p_in(x0)
U1(x0, x1, x2)
U2(x0)
U3(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
p_in(cons(0, Xs)) → U3(p_in(Xs))
p_in(cons(s(s(X)), cons(Y, Xs))) → U1(Y, Xs, p_in(cons(X, cons(Y, Xs))))
p_in(cons(X, nil)) → p_out
U1(Y, Xs, p_out) → U2(p_in(cons(s(s(s(s(Y)))), Xs)))
U2(p_out) → p_out
U3(p_out) → p_out
p_in(x0)
U1(x0, x1, x2)
U2(x0)
U3(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
p_in(x0)
U1(x0, x1, x2)
U2(x0)
U3(x0)
p_in(x0)
U1(x0, x1, x2)
U2(x0)
U3(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
No rules are removed from R.
P_IN(cons(s(s(X)), cons(Y, Xs))) → P_IN(cons(X, cons(Y, Xs)))
POL(P_IN(x1)) = 2·x1
POL(cons(x1, x2)) = 2·x1 + x2
POL(s(x1)) = 2·x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ UsableRulesReductionPairsProof
↳ QDP
↳ PisEmptyProof